package com.iuie.ns.frame.utils;

import java.util.Collection;
import java.util.LinkedList;
import java.util.List;

import com.iuie.ns.frame.utils.beans.TreeItem;

/**
 * @desc 树-工具类
 * @createTime 2017年6月24日 下午4:11:35
 * @author iuie
 */
public class TreeUtils {
    
    private TreeUtils() {
        
    }
    
    public static <E extends TreeItem> List<E> buildTree(Collection<E> items, String rootPid) {
        List<E> list = new LinkedList<>();
        for (E item: items) {
            if (StringUtils.equals(rootPid, item.getPid())) {
                item.setChildren(TreeUtils.getChildren(items, item.getId()));
                list.add(item);
            }
        }
        return list;
    }

    /**
     * 获取子节点
     * @param items
     * @param id
     * @return
     * @date 2017年6月24日 下午4:33:28
     */
    private static List<TreeItem> getChildren(Collection<? extends TreeItem> items, String pid) {
        List<TreeItem> list = new LinkedList<>();
        for (TreeItem item: items) {
            if (StringUtils.equals(pid, item.getPid())) {
                item.setChildren(TreeUtils.getChildren(items, item.getId()));
                list.add(item);
            }
        }
        return list;
    }

}
